package com.zx.mes.longsecurity.hyl.service;




import com.zx.mes.hyl.common.pagemodel.LayPageHelper;
import com.zx.mes.hyl.common.pagemodel.SessionInfo;
import com.zx.mes.hyl.common.pagemodel.Tree;
import com.zx.mes.longsecurity.hyl.domain.Tuser;
import com.zx.mes.longsecurity.hyl.pagemodel.Role;

import java.util.List;


/**
 * 角色业务逻辑
 * 
 * @author hyl
 * 
 */
public interface RoleServiceI {

	/**
	 * 保存角色
	 * 
	 * @param role
	 */
	void add(Role role) throws Exception;

	/**
	 * 获得角色
	 * 
	 * @param id
	 * @return
	 */
	Role get(String id);

	/**
	 * 编辑角色
	 * 
	 * @param role
	 */
	void edit(Role role) throws Exception;

	/**
	 * 获得角色treeGrid
	 * 
	 * @return
	 */
	List<Role> treeGrid(SessionInfo sessionInfo);


	/**
	 * 获得角色List<Role>
	 *
	 * @return
	 */
	List<Role> getRoles(String userId);

	/**
	 * 删除角色
	 * 
	 * @param id
	 */
	void delete(String id);

	/**
	 * 获得角色树(只能看到自己拥有的角色)
	 * 
	 * @return
	 */
	List<Tree> tree(Tuser tuser);

	/**
	 * 获得角色树
	 * @param tuser
	 *
	 * @return list
	 */
	List<Tree> allTree(Tuser tuser);

	/**
	 *
	 * @return
	 */
	List<Tree> getAll();

	/**
	 * 为角色授权
	 * 
	 * @param role
	 */
	void grant(Role role);


	/**
	 * 根据条件获得所有的角色
	 * @param role
	 * @param ph
	 * @return list
	 */
	List<Role> findAll(Role role, LayPageHelper ph);

	/**
	 * 根据参数 role 提供的条件 获得角色的数目
	 * @param role
	 * @return
	 */
	long count(Role role);
}
